#include<iostream>
#include<cmath>
using namespace std;
class Circle
{
	private:
		double Radius;
	public:
		void setRadius()
		{
			cout<<"Radius:"<<endl;
			cin>>Radius;
		}
		double getRadius()
		{
			return Radius;
		}
		double getArea()
		{
			return Radius*Radius*3.14;
		}
};
class Globe:public Circle
{
	public:
		void showSurfaceArea()
		{
			double R=getRadius();
			cout<<"Surface area="<<R*R*3.14*4<<endl;
		}
		void showVolume()
		{
			double R=getRadius();
			cout<<"Volume="<<3.14*R*R*R*3/4<<endl;
		}
};
class Cone:public Circle
{
	private:
		double height;
	public:
		void setCone()
		{
			setRadius();
			cout<<"Height="<<endl;
			cin>>height;
		}
		void showVolume()
		{
			cout<<"Volume="<<height*getArea()/3<<endl;
		}
		void showSurfaceArea()
		{
			cout<<"Surface area="<<pow(getRadius()*getRadius()+height*height,0.5)*getRadius()*3.14/2<<endl;
		}
};
class Cylinder:public Circle
{
	private:
		double height;
	public:
		void setCylinder()
		{
			setRadius();
			cout<<"Height:"<<endl;
			cin>>height;
		}
		void showVolume()
		{
			cout<<"Volume="<<getArea()*height<<endl;
		}
		void showSurfaceArea()
		{
			cout<<"Surface area="<<(getArea()*2+3.14*getRadius()*height)<<endl;
		}
};
int main()
{
	Globe G_a;
	cout<<"-------GLOBE-------"<<endl;
	G_a.setRadius();
	G_a.showSurfaceArea();
	G_a.showVolume();
	cout<<"-------CYLINDER-------"<<endl;
	Cylinder Cy_a;
	Cy_a.setCylinder();
	Cy_a.showSurfaceArea();
	Cy_a.showVolume();
	cout<<"-------CONE-------"<<endl;
	Cone Co_a;
	Co_a.setCone();
	Co_a.showSurfaceArea();
	Co_a.showVolume();
	return 0;
}

